#! /usr/bin/perl



# Chequeo que InicioY haya corrido.
# Si existe la variable de ambiente REPODIR, es que corrio InicioY.
if (exists($ENV{INICIO_OK}) && ($ENV{INICIO_OK} == 'grupo06')) {

	# @INC es la variable donde Perl busca los requiere.
	# Agrego el directorio corriente para que encuentre "consultas.pl"
	push (@INC, $ENV{BINDIR});
	require 'consultas.pl';

	# Chequeo que otro ReporteY no este corriendo
	my ($corriendo) = system("bloquear_pid.sh 'ReporteY.pl' $$");
	if ($corriendo == 0) {
		# Verifico si el usuario coloco alguna opcion (-h o -w)
		# Caso: coloco una opcion
		if ( $#ARGV == 0 ) {
			if ( @ARGV[$#ARGV] eq "-h" ) {
				&imprimirAyuda;
			} 
			else {
				if ( @ARGV[$#ARGV] eq "-w" ) {
					$reporteY = "ReporteY.";
					@reportes = < $ENV{REPODIR}/$reporteY* >;
					# Caso: no existe ningun reporte.
					if ($#reportes == -1) {
						$nombreSalida = "$ENV{REPODIR}/$reporteY" . "000";
					}
					else {
						# Caso: existen reportes, aumento 1 al sufijo.
						$reportes[$#reportes] =~ s|$ENV{REPODIR}/$reporteY||;
						$sufijo = $reportes[$#reportes];
						$sufijo++;
						$nombreSalida = "$ENV{REPODIR}/$reporteY" . $sufijo;
					}
					print "El reporte de salida de esta ejecucion lo encontrara en: $nombreSalida \n";
					#Comenzar Consultas		
					&consultas($nombreSalida);		
				}
				else {
					print "Error: Opcion invalida \n";
					&imprimirAyuda;
				}
			}
		} 
		else {
			# Caso: coloco mas de una opcion
			if ( $#ARGV > 0 ) {
				print "Error: Cantidad de opciones invalida \n";
				&imprimirAyuda;
			}	
			# Caso: no coloco opcion
			else {	
				#Comenzar Consultas
				&consultas("");
			}
		}
		system("desbloquear_pid.sh 'ReporteY.pl'");	
	}	
}
else {
	print "ERROR: El ambiente no esta correctamente inicializado.\n";
	print "       Por favor ejecute InicioY.sh\n";
}

sub imprimirAyuda {
	print "ReporteY [OPCION] \n";
	print "-h   muestra esta ayuda \n";
	print "-w   permite grabar un reporte de salida con todo lo mostrado por pantalla \n";
}
